1. Field of the Art
The present invention relates to telecommunication and a networked computer telephony system including the Internet and the Public Switched Telephone System, and more particularly to a system and method for deploying XMPP-compliant applications built on an XMPP API according to the Java servlet model.
2. Discussion of the State of the Art
Two major telecommunication networks have evolved worldwide. The first is a network of telephone systems in the form of the Public Switched Telephone System (PSTN). This network was initially designed to carry voice communication, but later also adapted to transport data. The second is a network of computer systems in the form of the Internet. The Internet has been designed to carry data but also increasingly being used to transport voice and multimedia information. Computers implementing telephony applications have been integrated into both of these telecommunication networks to provide enhanced communication services. For example on the PSTN, computer telephony integration has provided more functions and control to the POTS (Plain Old Telephone Services). On the Internet, computers are themselves terminal equipment for voice communication as well as serving as intelligent routers and controllers for a host of terminal equipment.
The Internet is a worldwide network of IP networks communicating under TCP/IP (Transmission Control Protocol/Internet Protocol) suite. Specifically, voice and other multimedia information are transported on the Internet under the VoIP (Voice-over-IP) protocol.
The integration of the PSTN and the IP networks allows for greater facility in automation of voice applications by leveraging the inherent routing flexibility and computing accessibility in the IP networks.
An example platform for easy deployment of telephony applications is described in U.S. Pat. No. 6,922,411, which entire disclosure is incorporated herein by reference. Essentially, a networked telephony system allows users to deploy on the Internet computer telephony applications associated with designated telephone numbers. The telephony application is easily created by a user in XML (Extended Markup Language) with predefined telephony XML tags (e.g. VoiceXML) and easily deployed on a website. The telephony XML tags include those for call control and media manipulation. A call to anyone of these designated telephone numbers may originate from anyone of the networked telephone system such as the PSTN (Public Switched Telephone System), a wireless network, or the Internet. The call is received by an application gateway center (AGC) installed on the Internet. Analogous to a web browser, the AGC provides facility for retrieving the associated XML application from its website and processing the call accordingly.
This type of telephony platform allows very powerful yet simple telephony applications to be built and deployed on the Internet. The following are some examples of the telephony applications deployed on this platform. A “find me, follow me” application sequentially calls a series of telephone numbers as specified by a user until one of the numbers answers and then connects the call. Otherwise, it does something else such as takes a message or sends e-mail or sends the call to a call center, etc. In another example, a telephonic polling application looks up from a database the telephone numbers of a population to be polled. It then calls the numbers in parallel, limited only by the maximum number of concurrent sessions supported, and plays a series of interactive voice prompts/messages in response to the called party's responses and records the result in a database, and so forth. In another example, a help desk application plays a series of interactive voice prompts/messages in response to the called party's responses and possibly connects the call to a live agent as one option, etc. In yet another example, a stock or bank Transactions application plays a series of interactive voice prompts/messages in response to the called party's responses and conducts appropriate transactions with a backend database or web application, etc.
The latter examples are generally referred to as self-help applications. In the voice context, a self-help application is referred to as IVR. IVR refers to Interactive Voice Response and is a technology that automates interaction with telephone callers. Enterprises are increasingly turning to IVR to reduce the cost of common sales, service, collections, inquiry and support calls to and from their company.
As described earlier, an IVR is a specific example of a self-help application in which users can help themselves by interacting with the application to perform some tasks. A traditional IVR only allows users to interact with it through a voice channel. Similarly, a web bot is a specific example of a self-help application that allows users to perform tasks using a text channel.
One example of the platform is to host an IVR application that interacts with voice, text messaging and other clients in a multi-channel environment.
Text messaging has become very popular with the proliferation of portable phones and computing devices. Text messaging is a form of communication by exchange of text messages from point to point or point to multiple points. Most common forms of text messaging are email, web blog and instant messaging. Instant messaging (“IM”) exchanges messages almost in real-time. There are a number of proprietary instant messaging networks, each providing IM service to each own clients using a native protocol. An open source IM Network also exists and uses the XMPP protocol.
XMPP refers to Extensible Messaging and Presence Protocol and it is a set of open XML technologies for presence and real-time communication developed by the Jabber open-source community in 1999.
An XMPP service for a Java application has been implemented in Google Talk™ as an XMPP extensions, a chat application from Google, Inc., California, USA, to make it XMPP compatible. This is accomplished by wrapping XMPP messages as MIME (Multipurpose Internet Mail Extensions) messages and putting the MIME messages inside a HTTP messages. So, from an application point of view, it actually receives a HTTP message and has to use a Google-specific API to extract the XMPP messages out of the MIME messages inside the HTTP message. This approach is not fully compliant with the standards-based Java servlet model.
It is desirable to have a self-help application that allows interaction with text messaging clients. It is therefore desirable to have a converged communication application platform, which allows applications to be easily developed and executed on the application server-side, similar to HTTP servlets for web clients or Session Initiation Protocol (SIP) servlets for voice clients.